Big Data (大数据),或称巨量资料,指的是在传统数据处理应用软件不足以处理的大或复杂的数据集。大数据也可以定义为来自各种来源的大量非结构化或结构化数据。从学术角度而言,大数据的出现促成广泛主题的新颖研究。这也导致各种大数据统计方法的发展。大数据并没有
统计学的
抽样方法;它只是观察和追踪发生的事情。因此,大数据通常包含的数据大小超出传统软件在可接受的时间内处理的能力。由于技术进步,发布新数据的便捷性以及全球大多数政府对高透明度的要求,大数据分析在现代研究中越来越突出。
介绍
在许多领域,由于数据集过度庞大,科学家经常在分析处理上遭遇限制和阻碍;这些领域包括
气象学、基因组学、神经网络体学、复杂的物理模拟,以及生物和环境研究。这样的限制也对
网络搜索、
金融与
经济信息学造成影响。数据集大小增长的部分原因来自于信息持续从各种来源被广泛收集,这些来源包括搭载感测设备的移动设备、高空感测科技(
遥感)、软件记录、相机、麦克风、
无线射频识别(RFID)和
无线感测网络。自1980年代起,现代科技可存储数据的容量每40个月即增加一倍;截至2012年,全世界每天产生2.5
艾字节( 字节)的数据。
大数据几乎无法使用大多数的数据库管理系统处理,而必须使用“在数十、数百甚至数千台服务器上同时并行运行的软件”(
计算机集群是其中一种常用方式)。大数据的定义取决于持有数据组的机构之能力,以及其平常用来处理分析数据的软件之能力。“对某些组织来说,第一次面对数百GB的数据集可能让他们需要重新思考数据管理的选项。对于其他组织来说,数据集可能需要达到数十或数百
TB才会对他们造成困扰。”
随着大数据被越来越多的提及,有些人惊呼大数据时代已经到来了,2012年《
纽约时报》的一篇专栏中写到,“大数据”时代已经降临,在商业、经济及其他领域中,决策将日益基于数据和分析而作出,而并非基于经验和直觉。但是并不是所有人都对大数据感兴趣,有些人甚至认为这是商学院或咨询公司用来哗众取宠的时髦术语(buzzword),看起来很新颖,但只是把传统重新包装,之前在学术研究或者政策决策中也有海量数据的支撑,大数据并不是一件新兴事物。
大数据时代的来临带来无数的机遇,但是与此同时个人或机构的
隐私权也极有可能受到冲击,大数据包含各种个人信息数据,现有的隐私保护法律或政策无力解决这些新出现的问题。有人提出,大数据时代,个人是否拥有“
被遗忘权”,被遗忘权即是否有权利要求数据商不保留自己的某些信息,大数据时代信息为某些互联网巨头所控制,但是数据商收集任何数据未必都获得用户的许可,其对数据的控制权不具有合法性。2014年5月13日欧盟法院就“被遗忘权”(right to be forgotten)一案作出裁定,判决
谷歌应根据用户请求删除不完整的、无关紧要的、不相关的数据以保证数据不在搜索结果中出现。这说明在大数据时代,加强对用户个人权利的尊重才是时势所趋的潮流。
定义
大数据由巨型
数据集组成,这些数据集大小常超出人类在可接受时间下的
收集、庋用、管理和处理能力。大数据的大小经常改变,截至2012年,单一数据集的大小从数
太字节(TB)至数十兆亿字节(PB)不等。
在一份2001年的研究与相关的演讲中,麦塔集团(META Group,现为
高德纳)分析员道格·莱尼(Doug Laney)指出数据长的挑战和机遇有三个方向:量(Volume,数据大小)、速(Velocity,数据输入输出的速度)与多变(Variety,多样性),合称“3V”或“3Vs”。高德纳与大部分大数据产业中的公司,都继续使用3V来描述大数据。高德纳于2012年修改对大数据的定义:“大数据是大量、高速、及/或多变的信息资产,它需要新型的处理方式去促成更强的决策能力、洞察力与最优化处理。”另外,有机构在3V之外定义第4个V:真实性(Veracity)为第四特点。
大数据必须借由计算机对数据进行统计、比对、解析方能得出客观结果。美国在2012年就开始着手大数据,奥巴马更在同年投入2亿美金在大数据的开发中,更强调大数据会是之后的未来石油。大数据分析一般主要从数据的容量、数据的速率、数据格式三方面进行分析,大数据分析方法很多,根据具体数据分析类型选择合适的数据分析方法,对提高数据分析效率起到重要作用。
数据挖掘(data mining)则是在探讨用以解析大数据的方法。大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
应用示例
大数据的应用示例包括
大科学、
RFID、感测设备网络、
天文学、大气学、交通运输、基因组学、
生物学、大社会数据分析、互联网文件处理、制作互联网搜索引擎索引、通信记录明细、军事侦查、金融大数据,医疗大数据,社交网络、通勤时间预测、医疗记录、照片图像和影像封存、大规模的
电子商务等。
巨大科学
大型强子对撞机中有1亿5000万个感测器,每秒发送4000万次的数据。实验中每秒产生将近6亿次的对撞,在过滤去除99.999%的撞击数据后,得到约100次的有用撞击数据。
将撞击结果数据过滤处理后仅记录0.001%的有用数据,全部四个对撞机的数据量复制前每年产生25
拍字节(PB),复制后为200拍字节。
如果将所有实验中的数据在不过滤的情况下全部记录,数据量将会变得过度庞大且极难处理。每年数据量在复制前将会达到1.5亿拍字节,等于每天有近500
艾字节(EB)的数据量。这个数字代表每天实验将产生相当于500
垓(5×10)字节的数据,是全世界所有数据源总和的200倍。
卫生学
国际卫生学教授
汉斯·罗斯林使用“Trendalyzer”工具软件呈现两百多年以来全球人类的人口统计数据,跟其他数据交叉比对,例如收入、宗教、能源使用量等。
公共部门
发达国家的政府部门开始推广大数据的应用。2012年奥巴马政府投资近两亿美元开始推行《大数据的研究与发展计划》,本计划涉及
美国国防部、美国卫生与公共服务部门等多个联邦部门和机构,意在通过提高从大型复杂的的数据中提取知识的能力,进而加快科学和工程的开发,保障国家安全。
市场
大数据的出现提升了对信息管理专家的需求,
Software AG、
Oracle、
IBM、
微软、SAP、易安信、
惠普和
戴尔已在多间数据管理分析专门公司上花费超过150亿美元。在2010年,数据管理分析产业市值超过1,000亿美元,并以每年将近10%的速度成长,是整个软件产业成长速度的两倍。
经济的开发成长促进了密集数据科技的使用。全世界共有约46亿的移动电话用户,并有10至20亿人链接互联网。自1990年起至2005年间,全世界有超过10亿人进入中产阶级,收入的增加造成了识字率的提升,更进而带动信息量的成长。全世界透过
电信网络交换信息的容量在1986年为281兆亿字节(PB),1993年为471兆亿字节,2000年时增长为2.2
艾字节(EB),在2007年则为65艾字节。根据预测,在2013年互联网每年的信息流量将会达到667艾字节。
基本特性
Big Data大数据,谈的不仅仅是数据量,其实包含了数据量(Volume)、时效性(Velocity)、多样性(Variety)、可疑性(Veracity)。
Volume:数据量大量数据的产生、处理、保存,谈的就是Big Data就字面上的意思,就是谈海量数据。
Velocity:时效性这个词我有看到几个解释,但我认为用IBM的解释来说是比较恰当的,就是处理的时效,既然前头提到Big Data其中一个用途是做市场预测,那处理的时效如果太长就失去了预测的意义了,所以处理的时效对Big Data来说也是非常关键的,500万笔数据的深入分析,可能只能花5分钟的时间
Variety:多变性指的是数据的形态,包含文字、影音、网页、串流等等结构性、非结构性的数据
Veracity:可疑性指的是当数据的来源变得更多元时,这些数据本身的可靠度、质量是否足够,若数据本身就是有问题的,那分析后的结果也不会是正确的。
麦肯锡将大数据定义为: 无法在一定时间内用传统数据库软件工具对其内容进行抓取、管理和处理的数据集合。大数据不是一种新技术,也不是一种新产品,而是一种新现象,是近来研究的一个技术热点。大数据具有以下 4 个特点,即 4 个“V”:
数据体量(Volumes) 巨大。大型数据集,从TB 级别,跃升到 PB 级别。
数据类别(Variety)) 繁多。数据来自多种数据源,数据种类和格式冲破了以前所限定的
结构化数据范畴,囊括了半结构化和非结构化数据
价值( Value) 密度低。以视频为例,连续不间断监控过程中,可能有用的数据仅仅一两秒钟。
处理速度( Velocity) 快。包含大量在线或实时数据分析处理的需求,1 秒定律。
技术综述
Big Data是近来的一个技术热点,但从名字就能判断它并不是什么新词。毕竟,大是一个相对概念。历史上,数据库、
数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。被誉为数据仓库之父的Bill Inmon早在20世纪90年代就经常将Big Data挂在嘴边了。
然而,Big Data作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展。无所不在的移动设备、
RFID、
无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互……要处理的数据量实在是太大、增长太快了,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本无法应付。
在这种情况下,技术人员纷纷研发和采用了一批新技术,主要包括
分布式缓存、基于MPP的
分布式数据库、
分布式文件系统、各种NoSQL分布式存储方案等。
10年前,Eric Brewer提出著名的CAP定理,指出:一个分布式系统不可能满足一致性、可用性和分区容忍性这三个需求,最多只能同时满足两个。系统的关注点不同,采用的策略也不一样。只有真正理解了系统的需求,才有可能利用好CAP定理。
Key-Value存储,如Amazon Dynamo等,可以根据CAP理论灵活选择不同倾向的数据库产品。
领域模型+分布式缓存+存储,可根据CAP理论结合自己的项目定制灵活的分布式方案,但难度较高。
对大型网站,可用性与分区容忍性优先级要高于
数据一致性,一般会尽量朝着A、P的方向设计,然后通过其他手段保证对于一致性的商务需求。
架构设计师不要将精力浪费在如何设计能满足三者的分布式系统,而应该懂得取舍。
不同的数据对一致性的要求是不同的。
SNS网站可以容忍相对较长时间的不一致,而不影响交易和用户体验;而像支付宝这样的交易和账务数据则是非常敏感的,通常不能容忍超过秒级的不一致。
分布式系统
谈到
分布式文件系统,不得不提的是Google的GFS。基于大量安装有Linux操作系统的普通PC构成的集群系统,整个集群系统由一台Master(通常有几台
备份)和若干台TrunkServer构成。GFS中文件备份成固定大小的Trunk分别存储在不同的TrunkServer上,每个Trunk有多份(通常为3份)拷贝,也存储在不同的TrunkServer上。Master负责维护GFS中的 Metadata,即文件名及其Trunk信息。客户端先从Master上得到文件的Metadata,根据要读取的数据在文件中的位置与相应的TrunkServer通信,获取文件数据。
在Google的论文发表后,就诞生了Hadoop。Hadoop被很多中国最大互联网公司所追捧,百度的搜索日志分析,腾讯、淘宝和支付宝的数据仓库都可以看到Hadoop的身影。
Hadoop具备低廉的硬件成本、开源的软件体系、较强的灵活性、允许用户自己修改代码等特点,同时能支持海量
数据存储和计算任务。
Hive是一个基于Hadoop的数据仓库平台,将转化为相应的MapReduce程序基于Hadoop执行。通过Hive,开发人员可以方便地进行ETL开发。
如图1所示,引用一张Facebook工程师做的Hive和Hadoop的关系图。
Yonghong Data Mart的Data Grid的分布式文件存储系统(DFS) 是在Hadoop HDFS基础上进行的改造和扩展,将服务器集群内所有节点上存储的文件统一管理和存储。这些节点包括唯一的一个NamingNode,在 DFS 内部提供元数据服务;许多MapNode,提供存储块。存储在 DFS 中的文件被分成块,然后将这些块复制到多个计算机中(Map Node)。这与传统的 RAID 架构大不相同。块的大小和复制的块数量在创建文件时由客户机决定。Naming Node监控存在服务器集群内所有节点上的文件操作,例如文件创建、删除、移动、重命名等等。
数据挖掘
数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
在实施数据挖掘之前,先制定采取什么样的步骤,每一步都做什么,达到什么样的目标是必要的,有了好的计划才能保证数据挖掘有条不紊地实施并取得成功。很多软件供应商和数据挖掘顾问公司投提供了一些数据挖掘过程模型,来指导他们的用户一步步地进行数据挖掘工作。比如,SPSS公司的5A和SAS公司的SEMMA。
数据挖掘过程模型步骤主要包括定义问题、建立数据挖掘库、分析数据、准备数据、建立模型、评价模型和实施。下面让我们来具体看一下每个步骤的具体内容:
(1)定义问题。在开始知识发现之前最先的也是最重要的要求就是了解数据和业务问题。必须要对目标有一个清晰明确的定义,即决定到底想干什么。比如,想提高电子信箱的利用率时,想做的可能是“提高用户使用率”,也可能是“提高一次用户使用的价值”,要解决这两个问题而建立的模型几乎是完全不同的,必须做出决定。
(2)建立数据挖掘库。建立数据挖掘库包括以下几个步骤:数据收集,数据描述,选择,数据质量评估和数据清理,合并与整合,构建元数据,加载数据挖掘库,维护数据挖掘库。
(3)分析数据。分析的目的是找到对预测输出影响最大的数据字段,和决定是否需要定义导出字段。如果数据集包含成百上千的字段,那么浏览分析这些数据将是一件非常耗时和累人的事情,这时需要选择一个具有好的界面和功能强大的工具软件来协助你完成这些事情。
(4)准备数据。这是建立模型之前的最后一步数据准备工作。可以把此步骤分为四个部分:选择变量,选择记录,创建新变量,转换变量。
(5)建立模型。建立模型是一个反复的过程。需要仔细考察不同的模型以判断哪个模型对面对的商业问题最有用。先用一部分数据建立模型,然后再用剩下的数据来测试和验证这个得到的模型。有时还有第三个数据集,称为验证集,因为测试集可能受模型的特性的影响,这时需要一个独立的数据集来验证模型的准确性。训练和测试数据挖掘模型需要把数据至少分成两个部分,一个用于模型训练,另一个用于模型测试。
(6)评价模型。模型建立好之后,必须评价得到的结果、解释模型的价值。从测试集中得到的准确率只对用于建立模型的数据有意义。在实际应用中,需要进一步了解错误的类型和由此带来的相关费用的多少。经验证明,有效的模型并不一定是正确的模型。造成这一点的直接原因就是模型建立中隐含的各种假定,因此,直接在现实世界中测试模型很重要。先在小范围内应用,取得测试数据,觉得满意之后再向大范围推广。
(7)实施。模型建立并经验证之后,可以有两种主要的使用方法。第一种是提供给分析人员做参考;另一种是把此模型应用到不同的数据集上。
数据挖掘的算法主要包括神经网络法、决策树法、遗传算法、粗糙集法、模糊集法、关联规则法等。
神经网络法是模拟生物神经系统的结构和功能,是一种通过训练来学习的非线性预测模型,它将每一个连接看作一个处理单元,试图模拟人脑神经元的功能,可完成分类、聚类、特征挖掘等多种数据挖掘任务。神经网络的学习方法主要表现在权值的修改上。其优点是具有抗干扰、非线性学习、联想记忆功能,对复杂情况能得到精确的预测结果;缺点首先是不适合处理高维变量,不能观察中间的学习过程,具有“黑箱”性,输出结果也难以解释;其次是需较长的学习时间。神经网络法主要应用于数据挖掘的聚类技术中。
决策树是根据对目标变量产生效用的不同而建构分类的规则,通过一系列的规则对数据进行分类的过程,其表现形式是类似于树形结构的流程图。最典型的算法是J.R.Quinlan于1986年提出的
ID3算法,之后在ID3算法的基础上又提出了极其流行的
C4.5算法。采用决策树法的优点是决策制定的过程是可见的,不需要长时间构造过程、描述简单,易于理解,分类速度快;缺点是很难基于多个变量组合发现规则。决策树法擅长处理非数值型数据,而且特别适合大规模的数据处理。决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。比如,在贷款申请中,要对申请的风险大小做出判断。
遗传算法模拟了自然选择和遗传中发生的繁殖、交配和基因突变现象,是一种采用遗传结合、遗传交叉变异及自然选择等操作来生成实现规则的、基于进化理论的机器学习方法。它的基本观点是“适者生存”原理,具有隐含并行性、易于和其他模型结合等性质。主要的优点是可以处理许多数据类型,同时可以并行处理各种数据;缺点是需要的参数太多,编码困难,一般计算量比较大。遗传算法常用于优化神经元网络,能够解决其他技术难以解决的问题。
粗糙集法也称
粗糙集理论,是由波兰数学家Z Pawlak在20世纪80年代初提出的,是一种新的处理含糊、不精确、不完备问题的数学工具,可以处理数据约简、数据相关性发现、数据意义的评估等问题。其优点是算法简单,在其处理过程中可以不需要关于数据的先验知识,可以自动找出问题的内在规律;缺点是难以直接处理连续的属性,须先进行属性的离散化。因此,连续属性的离散化问题是制约粗糙集理论实用化的难点。粗糙集理论主要应用于近似推理、数字逻辑分析和化简、建立预测模型等问题。
模糊集法是利用模糊集合理论对问题进行模糊评判、模糊决策、
模糊模式识别和模糊聚类分析。模糊集合理论是用隶属度来描述模糊事物的属性。系统的复杂性越高,模糊性就越强。
关联规则反映了事物之间的相互依赖性或关联性。其最著名的算法是R.Agrawal等人提出的Apriori算法。其算法的思想是:首先找出频繁性至少和预定意义的最小支持度一样的所有频集,然后由频集产生强关联规则。最小支持度和最小可信度是为了发现有意义的关联规则给定的2个阈值。在这个意义上,数据挖掘的目的就是从源数据库中挖掘出满足最小支持度和最小可信度的关联规则。
数据集市
数据集市(Data Mart) ,也叫数据市场,是一个从操作的数据和其他的为某个特殊的专业人员团体服务的数据源中收集数据的仓库。从范围上来说,数据是从企业范围的数据库、数据仓库,或者是更加专业的数据仓库中抽取出来的。数据中心的重点就在于它迎合了专业用户群体的特殊需求,在分析、内容、表现,以及易用方面。数据中心的用户希望数据是由他们熟悉的术语表现的。
国外知名的Garnter关于数据集市产品报告中,位于第一象限的敏捷商业智能产品有QlikView, Tableau和SpotView,都是全内存计算的数据集市产品,在大数据方面对传统商业智能产品巨头形成了挑战。国内BI产品起步较晚,知名的敏捷型商业智能产品有PowerBI, 永洪科技的Z-Suite,
SmartBI等,其中永洪科技的Z-Data Mart是一款热内存计算的数据集市产品。国内的德昂信息也是一家数据集市产品的系统集成商。
NoSQL
随着数据量增长,越来越多的人关注NoSQL,特别是2010年下半年,Facebook选择
HBase来做实时消息
存储系统,替换原来开发的Cassandra系统。这使得很多人开始关注HBase。Facebook选择HBase是基于短期小批量临时数据和长期增长的很少被访问到的数据这两个需求来考虑的。
HBase是一个高可靠性、高性能、面向列、可伸缩的
分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化存储集群。HBase是BigTable的开源实现,使用HDFS作为其文件存储系统。Google运行MapReduce来处理BigTable中的海量数据,
HBase同样利用MapReduce来处理HBase中的海量数据;BigTable利用Chubby作为协同服务,HBase则利用Zookeeper作为对应。
总结
近来NoSQL数据库的使用越来越普及,几乎所有的大型互联网公司都在这个领域进行着实践和探索。在享受了这类数据库与生俱来的扩展性、
容错性、高读写吞吐外(尽管各主流NoSQL仍在不断完善中),越来越多的实际需求把人们带到了NoSQL并不擅长的其他领域,比如搜索、准实时统计分析、简单事务等。实践中一般会在NoSQL的外围组合一些其他技术形成一个
整体解决方案。